#ifndef __HIKARI_ASTAR_POINT__
#define __HIKARI_ASTAR_POINT__

class Point{
private:
	int x;
	int y;
public:
	Point(){
		x=0;
		y=0;
	}

	Point(int x, int y){
		this->x=x;
		this->y=y;
	}

	int getX() const{
		return x;
	}

	int getY() const{
		return y;
	}

	void setX(int x){
		this->x=x;
	}

	void setY(int y){
		this->y=y;
	}

	void setXY(int x,int y){
		this->x=x;
		this->y=y;
	}

    unsigned int hashCode() const{
		int hash = 5;
        hash = 59 * hash + this->x;
        hash = 59 * hash + this->y;
        return hash;
    }

	bool operator <(const Point& rhs) const
    {
		return getX()<rhs.getX()|| (!(rhs.getX()<getX()) && getY()<rhs.getY()); 
    }
};

#endif